package demo1223.io;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

/*
IO流:
按照流向分为输入流和输出流.
按照读写的类型分为字符流和字节流.

学习字符流:
abstract class Writer(字符输出流类)
子类:FileWriter OutputStreamWriter  BufferWriter

public void flush();把输出流中的数据给它刷新到文件中
public void close();把输出流关闭.

FileWriter的构造方法:
public FileWriter(File file)throws IOException
使用给定的file创建一个FileWriter对象,
file--->写入文件的对象.
public FileWriter(File file,boolean append)throws IOException
file - 要写入数据的 File 对象
append - 如果为 true，则将字节写入文件末尾处，而不是写入文件开始处

把程序中的数据写入到文件的步骤:
1.创建FileWriter对象,绑定写入的文件
2.使用对象中的write方法,把数据写入到输出流中.
3.使用刷新的方法,把输出流中的数据刷新到硬盘中
4.关闭资源.

close方法在关闭流之前,都会调用一个flush方法
把输出流中所有的数据刷新到硬盘中,在关闭资源

成员方法:
public void write(int c) throws IOException;写入单个字符到输出流中.
public void write(char[] cs) throws IOException;写入字符数组到输出流中.
public void write(char[] cs,int off,int len)throws IOException;
        写入部分字符数组到输出流中.
        off:开始的索引位置,
        len:指定的长度.

public void write(String str)throws IOException;把字符串写入到输出流中.
public void write(String str,int off ,int len)throws IOException;
        把字符串的部分数据写入到输出流中.
        int off:开始的索引位置
        len:指定的长度

 */
public class Demo_01 {
    public static void main(String[] args) {
        try {
//        1.创建FileWriter对象,绑定写入的文件
            FileWriter fw = new
                    FileWriter(new File("a.txt"));
//            2.使用对象中的write方法,把数据写入到输出流中.
           /* fw.write("人生若只如初见");
            fw.write("\r\n");
            fw.write("何事秋风悲画扇");*/
            fw.write('中');
            char[] cs = {'a', 'b', 'c', '你', '好'};
//            把数组中的一部分写入到输出流中
            fw.write(cs,3,2);
//            3.使用刷新的方法,把输出流中的数据刷新到硬盘中
//            fw.flush();
//            关闭资源
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
